package other.one;

import java.util.Collection;

/**
 * 房间服务，这个房间服务主要功能为管理房间以及房间内的成员（String 类型）。
 * 如果房间不存在则创建这个房间
 *
 * 保证并发情况下的房间用户数据一致性
 */
public interface RoomService {
    /**
     * 加入房间
     * @param userId 用户 Id
     * @param roomId 房间 Id
     * @throws RuntimeException
     */
    void joinRoom(String userId, String roomId) throws RuntimeException;

    /**
     * 离开房间
     * @param userId 用户 Id
     * @param roomId 房间 Id
     * @throws RuntimeException
     */
    void leaveRoom(String userId, String roomId) throws RuntimeException;

    /**
     * 获取房间成员列表
     * @param roomId 房间 Id
     * @return 房间成员列表
     * @throws RuntimeException
     */
    Collection<String> queryUser(String roomId) throws RuntimeException;
}